In [ ]:
li = [-5, 7, 4, 9, 1, 12, 2]
In [ ]:
li
La operación más importante que se hace con las listas es la extracción de sus elementos en distintas posiciones. Es muy importante tener en cuenta que las listas en Python siempre empiezan con el índice 0
, como los arreglos de C y C++.
In [ ]:
li[0]
In [ ]:
li[3]
Lo bueno de las listas en Python es que si usamos un índice más grande que n-1
, donde n
es el total de elementos, Python nos da un error (en lugar de retornar basura de la memoria, como en C o C++)
In [ ]:
li[20]
Las listas son modificables, es decir, que sus elementos pueden modificarse de acuerdo a la siguiente sintaxis:
In [ ]:
li[0] = -100
li
Además pueden seleccionarse fácilmente subconjuntos de una lista, usando lo que se conoce como rebanado (o slicing en inglés), que consiste en usar dos índices separados por :
al momento de tomar elementos de la lista. Al hacerlo, Python toma los elementos que van desde el primer índice hasta uno menos del último. Veamos un par de ejemplos:
In [ ]:
li[1:3]
In [ ]:
li[2:6]
El rebanado también funciona si se usa un sólo índice, bien sea el superior o el inferior, siempre que vaya acompañado de los :
. En estos casos se obtiene el resultado que uno esperaría, es decir, que se tome desde el índice que uno quiera hasta el final:
In [ ]:
li[2:]
o lo opuesto: que la selección vaya desde el principio hasta un índice menos que el que se use como último:
In [ ]:
li[:4]
También es importante mencionar que la selección de elementos y el rebanado funcionan con índices negativos, así:
In [ ]:
li
In [ ]:
li[-1]
In [ ]:
li[-3:]
Empleando esta notación, es posible también invertir el orden de los elementos de una lista
In [ ]:
li[::-1]
Nota: En general la notación de rebanado en Python es de la forma [a:b:c]
, dónde se toman los elementos de la lista, iniciando en a
, hasta b-1
en pasos de c
. Por ejemplo, de esta forma es posible tomar los elementos de una lista que se encuentran en índices pares:
In [ ]:
li[::2]
Finalmente cabe decir que se pueden usar las operaciones aritméticas + para concatenar dos listas, y * para repetir varias veces los elementos de una lista, así:
In [ ]:
[0, 4, 7] + [2, 3]
In [ ]:
[0] * 4
Para ordenar los elementos de una lista en Python, existen dos funciones principales que se pueden emplear, la diferencia entre las dos radica en el resultado obtenido tras la ejecución.
En este caso, la función sorted()
retorna una nueva lista que contiene los elementos de la lista original de forma ordenada, mientras que la función list.sort()
ordena los elementos de la lista original, modificando su contenido. Por ejemplo:
In [ ]:
example_list = [-1, 0, 100, -29, 2, 3, 6]
A continuación ordenaremos la lista, retornando una nueva lista que contiene los elementos ordenados:
In [ ]:
ordered_list = sorted(example_list)
ordered_list
Ahora, ordenaremos la lista alterando el orden de los elementos en la lista original:
In [ ]:
example_list.sort()
example_list
In [ ]:
# Escribir la solución aquí
In [ ]:
# Escribir la solución aquí
In [ ]:
li = [3, 18, 17, 44, 14, 12, 29, 19, 4, 6, 17, 7, 14, 6, 8, 17, 17, 21, 65,\
19, 10, 31, 92, 17, 5, 15, 3, 14, 20, 12, 29, 57, 15, 2, 17, 1, 6, 17, 2,\
71, 12, 11, 62, 14, 9, 20, 43, 19, 4, 15]
Respuesta:
20.04
Nota: Usar el comando sum(li)
para obtener la suma de los elementos de la lista, y el comando len(li)
para obtener cuantos elementos tiene.
In [ ]:
# Escribir la solución aquí
La media móvil es un concepto usado en economía para tratar de observar si existe una tendencia al alza o a la baja en los precios de las acciones de una empresa. Para ello, lo que hace es crear una serie de promedios de distintos subconjuntos del conjunto de datos original.
Por ejemplo, si en siete días las acciones de una empresa tuvieron los siguientes precios:
Precios: 11, 12, 13, 14, 15, 16, 17
Podemos calcular la media móvil, en periodos de cinco días, de la siguiente forma:
Primera media móvil de 5 días: (11 + 12 + 13 + 14 + 15) / 5 = 13
Segunda media móvil de 5 días: (12 + 13 + 14 + 15 + 16) / 5 = 14
Tercera media móvil de 5 días: (13 + 14 + 15 + 16 + 17) / 5 = 15
Con esta descripción, encontrar de la cuarta, séptima y décima medias móviles, en periodos de 10 días, para los siguientes precios de las acciones de Intel registrados entre el 24 de Marzo y el 5 de Mayo de 2010:
In [ ]:
intel = [22.27, 22.19, 22.08, 22.17, 22.18, 22.13, 22.23, 22.43, 22.24,\
22.29, 22.15, 22.39, 22.38, 22.61, 23.36, 24.05, 23.75, 23.83, 23.95,\
23.63, 23.82, 23.87, 23.65, 23.19, 23.10, 23.33, 22.68, 23.10, 22.40,\
22.17]
Respuesta:
22.259, 22.613, 23.076
Nota: Utilizar las operaciones de rebanado descritas arriba.
El material de este notebook fue recopilado para Clubes de Ciencia Colombia 2017 por Luis Henry Quiroga (GitHub: lhquirogan) - Germán Chaparro (GitHub: saint-germain), y fue adaptado de https://github.com/PythonBootcampUniandes